At present, the information processing apparatus, such as a computer, is used in various kinds of data processing. In the system for managing data, there is a case where a copy of data stored in a storage device is also stored in another storage device. In this case, even if one of the storage devices fails, it is possible to continue processing using the data stored in the other storage device. For example, there is a system which makes a database redundant by storing the database having the same contents in a plurality of storage devices and by synchronizing each database.
In this system, if one of the storage devices fails, it is no longer possible to use the database stored in this storage device, and therefore, the system is operated by the single database. In this case, if the single database is no longer available because of a failure etc., it is no longer possible to continue data processing. Because of this, it is considered to restore the contents of the database during suspension of use to the contents at the same time point as that of the database in use and to resume the synchronized operation. The restoration method of a database includes methods as follows.
For example, the database is restored by acquiring a transaction log storing a history of updates of the database in use and by performing the transaction log again on the database to be restored after complete suspension of the use of the database in use. Further, for example, there is also proposed a restoration method not using the transaction log. In this proposal, when a first database system is referred to or updated, the record that is referred to or updated is duplicated in a second database system to be restored, and thus, the database of the second database system is restored (for example, see Japanese Laid-open Patent Publication No. 07-262068).
As described above, there is a case where a second data group stored in a second storage device is restored using history information indicating the history of updates of a first data group (e.g., database) stored in a first storage device. At this time, it is considered to restore the second data group while receiving updates of the first data group. However, in this case, there is a problem of a possibility that the time taken until completion of the restoration of the second data group is increased.
For example, if the first data group is updated during restoration of the second data group using the history information up to a first time point, history information corresponding to a difference between the data at the first time point and the data at a second time point (first difference) may be generated. Consequently, after restoration of the second data group up to the first time point, the second data group is restored up to the second time point using the first difference. Then, there may be generated history information corresponding to a difference between the data at the second time point and the data at a third time point (second difference) during the restoration. In other words, until there is no longer a difference in history information, a new difference is applied sequentially.
However, a large amount of updates may be generated during application of the first difference. These updates are stored in the second difference. If the second difference includes a large amount of updates, the application time of the second difference becomes long. Consequently, the amount of updates of the first data group may also increase within the application time of the second difference. Because of this, there is further a possibility that the application time of the next difference (third difference) also becomes long. If this is repeated and the application time of each difference becomes long, it takes time until completion of restoration of the second data group. If the operation using the single data group becomes long, the possibility is increased that it is no longer possible to continue processing at the time of occurrence of a failure etc.